// TypeScript file
module Bullet {

    /**
     * 储存子弹--郭启航
     */
    export class BulletManager {
        /**初始化动画层 */
        constructor(tshowpanle) {
            this.showPanle = tshowpanle;
        }
        /**对象池存储字典 */
        public productBulletus: BasicBullet[] = [];
        /**显示层*/
        private showPanle: egret.DisplayObjectContainer;
        /**创建子弹的个数，用来作为子弹的ID*/
        private static productBulletNumber = 0;

        // /**初始化飞机层*/
        // public init(tshowpanle)
        // {
        //     this.showPanle=tshowpanle;
        // }
        /**创建指定子弹*/
        public createBullet(type, point,angle=0) {
            let bullet = GameUtil.GamePools.creatGamePools().produceBlt(type);
            //var bullet: BasicBullet;
            // switch (type) {
            //     case 0:
            //         bullet = new Bullet.BasicBullet();
            //         break;
            //     case 1:
            //         bullet = new Bullet.BulletBattery();
            //         break;
            //     case 2:
            //         bullet = new Bullet.BulletEnemy();
            //         break;

            // }
            bullet.initBullet(this.showPanle, this, type);
            bullet.bulletBorn(point, BulletManager.productBulletNumber,angle);
            this.productBulletus.push(bullet);
            BulletManager.productBulletNumber++;
        }
        /**摧毁一颗子弹*/
        public destoryOneBullet(tid) {
            for (var i = this.productBulletus.length - 1; i >= 0; i--) {
                if (this.productBulletus[i].bulletId == tid) {
                    //回收子弹
                    //GameUtil.GamePools.instance.reclaimBlt(this.productBulletus[i]);
                    this.productBulletus.splice(i, 1);
                    return;
                }
            }
        }
        /**子弹每帧移动---Airbattle调用*/
        public update(deltaTimeStamp) {
            for (let i = 0; i < this.productBulletus.length; i++) {
                if (this.productBulletus[i].bulletIsLiving) {
                    this.productBulletus[i].update(deltaTimeStamp);
                }
            }
        }
        /**回合结束*/
        public fightRoundEnd() {
            while (this.productBulletus.length > 0) {
                this.productBulletus[this.productBulletus.length - 1].destory();
            }
        }

    }
}